The present invention relates to a data processing system such as parallel computer system, distributed processing network, or the like in which two or more computer systems are connected through a mutual connection network, thereby enabling parallel processings and distributed processings.
A packet transfer is disclosed in D. E. Comer, et al., "INTERNETWORKING WITH TCP/IP VOLUME II, Chapter 2, The Structure of TCP/IP Software In An Operating System", Prentice-Hall International Editors, pp. 7-24, 1991.
In the parallel computer system, one application for parallel processings previously divides processings into a plurality of nodes of parallel computers and each processing is executed in parallel and, by performing an inter-node communication at a node between the processings, the whole processings are cooperatively executed.
As a conventional technique of a mutual connection network among computers for performing parallel processings, for example, there are "Virtual Cut-Through: A New Computer Communication Switching Technique", Computer Network 3 (1979), pp 267-286, North-Holland Publishing Company, and "Parallel Processor" of JP-A-60-84661 (U.S. Pat. No. 4,814,973). According to those techniques, a message- or packet-transfer circuit in a processing element (hereinafter, referred to as a PE) of a parallel computer transmits an inter-processor packet constructed by an address and data in an order of an address portion first and, subsequently, a data portion. A packet communication network for switching a path for packets is constructed by one or a plurality of packet path change-over switches and sets a communication path at a time when the address portion is received. Each packet path change-over switch releases the communication path at a time point when the transmission of all packets is completed. Such a communication system is also called a Wormhole communication. Generally, a communication path of the mutual connection network for the parallel computers includes such a packet transfer circuit and such packet path change-over switches. Each packet is separated to units of a small capacity called flits or cells and transferred. In the case where the packet path change-over switch on the reception side or a reception cell buffer of a small capacity which the PE has is in a busy state, in order to prevent that the reception cell or packet is abandoned, the transmission is waited by a hardware flow control for turning off a transmission permission signal of the cell to be sent to the transmission side for a period of time until it can be received.
As mentioned above, in the case where it is guaranteed between PEs in the parallel computer system to receive each cell in a predetermined time by setting a granularity of each partial process that is received to a proper value to execute predetermined tasks, even if there is no large capacity buffer to store all of the packets, a reliable communication of a high throughput and a low latency can be cheaply realized by adding a communication buffer to the communication path in the parallel computers and by hardware flow controlling them.
As another conventional technique, a communication on an LAN (Local Area Network) such as Ethernet, FDDI, or the like will now be described.
In each of the computers connected to the LAN, a number of various distributed application softwares which are not predetermined are running. The hardware flow control function does not exist in the communication on the LAN. Therefore, when much data from many PEs are sent to a specific computer, processing capabilities of the packet transfer circuit and communication software will be lacking and a computer system on the reception side abandons the packet. For the packet abandoned by the computer system on the reception side, another packet will be retransmitted by using a transmission acknowledging function and a retransmitting function by the communication software.
In the LAN, there are the following requirements different from those of the mutual connection network for parallel processings.
(a) There is no flow control function providing decreased throughput for succeeding packets between the transmission side and reception side.
(b) The whole LAN is not stopped by a fault or state in a computer connected to the LAN.
In recent years, there is a high performance parallel computer system wherein a plurality of high quality computers of similar capabilities are connected by a high speed switching network through a high speed communication path over a distance of up to 100 m ("Clusters STAY UP and GROW HUGE", DATAMATION, pp. 39-45, September, 1994). Such a system is called a cluster system and can realize a performance similar to that of the conventional parallel computers. Although the cluster system is used as one parallel computer system in the ordinary operation, it is considered that in the other cases, the cluster system is effectively used as a network (of the LAN type) which a number of unspecified users (application programs) individually use (hereinafter, such a use is called a network for distributed processings).
As mentioned above, however, the network for distributed processings such as an LAN or the like has a feature different from that of the mutual connection network of the parallel computers. When, therefore, the mutual connection network of the parallel computers is simply used as a part of the network for distributed processes, there are the following problems.
(a) Although the hardware flow control is effective for communications within the parallel processing system, it will deteriorate the throughput in communications within an LAN connected to a distributed processing system.
(b) With respect to the prevention of the spread of fault:
In case of a fault in one of computers for distributed processings, it is necessary to prevent the fault from spreading over the other computers connected to the LAN. Then, it will be desirable to retransmit data to/from the one computer after the normal operation is recovered rather than to stop the whole system until its recovery. On the other hand, in case of a fault in one of parallel processing computers, for example, a hang-up of the packet transfer circuit, when the hardware flow control functions, the packet is stopped on the packet transfer circuit or packet transfer network, so that the transmission side also enters a transmission stop state and the communication path from the computer on the transmission side to the computer that cannot receive is blocked. Further, another computer having the transmission packet to such an unreceivable computer also enters a waiting state of the communication path and, a problem such that the whole cluster system finally stops occurs. As mentioned above, in the case in which the packets are received in a predetermined time as a system is not guaranteed, if the hardware flow control operates, a problem such that the whole cluster system finally stops occurs.
As a prerequisite of the above circumstances, one communication path is assumed because normally one application program is executed in one time. When a plurality of paths can be logically constructed, although the whole cluster system does not always stop, a problem that throughput over stopped paths deteriorates remains.
Factors deteriorating the data reception in a predetermined time through the communication path blocked because of the hardware flow control not guaranteed are explained below.
(a) Lack of supplying capability of reception buffer by communication software of computer on the reception side.
In the case where there is no remaining reception buffer of the computer on the reception side, there is a possibility that the network adapter's receiving operation stops for a period of time until the activation of the communication software of the computer on the reception side and, during the period the whole cluster system stops.
(b) The packet transfer adapter of the computer on the reception side is not in operation, deteriorating operation of the communication network connected to the computer (including incompletion of the recovery process after the fault occurred).
(c) Hardware fault of the packet transfer circuit on the transmission side after the circuit connected a path.
(d) Hardware fault of the packet transfer circuit on the reception side.
(e) Disconnection of the computers on the transmission side from the network under a state of holding a path.
(f) Disconnection of the computers on the reception side from the network before reception.